package com.pxst.internalReports.req;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.pxst.req.BasePageRsp;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.validation.annotation.Validated;

import javax.validation.Valid;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.PastOrPresent;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @author Txd
 * @since 2023-09-22 14:44:20
 */
@Data
@ApiModel(description = "接收前端的内部转账列表的查询参数")
@Validated
public class InternalTransferListReq extends BasePageRsp {

    @ApiModelProperty(value = "银行卡群ID")
    private Integer bankCardGroupId;

    @Min(value = 1, message = "status必须在（1,2,3,4,5）")
    @Max(value = 5, message = "status必须在（1,2,3,4,5）")
    @Valid
    @ApiModelProperty(value = "讯银回传状态")
    private List<Integer> status;

    @ApiModelProperty(value = "转移类型")
    private ArrayList<Integer> type;

    @ApiModelProperty(value = "币种")
    private String currency;

    @ApiModelProperty(value = "银行ID")
    private Integer availableBankId;

    @PastOrPresent(message = "必须是过去或现在的时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新日期的开始日期")
    private Date updatedStartDate;

    @PastOrPresent(message = "必须是过去或现在的时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新日期的结束日期")
    private Date updatedEndDate;

    @PastOrPresent(message = "必须是过去或现在的时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "成功日期的开始日期")
    private Date completedStartTime;

    @PastOrPresent(message = "必须是过去或现在的时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "成功日期的结束日期")
    private Date completedEndTime;

    @ApiModelProperty(value = "From账户代码")
    private String from;

    @JsonProperty("to")
    @ApiModelProperty(value = "To账户代码")
    private String to;

    @ApiModelProperty(value = "otp method")
    private ArrayList<String> vndOtp;

    @ApiModelProperty(value = "出款方式")
    private ArrayList<String> vndPaymentMethod;

    @ApiModelProperty(value = "附言")
    private String postscript;

    private String altId;

    @ApiModelProperty(value = "自动")
    private String trAuto;

    @Min(value = 1, message = "status必须在（1,2）")
    @Max(value = 5, message = "status必须在（1,2）")
    @ApiModelProperty(value = "vbs关联状态")
    private Integer vbsTag;

}
